package vip.ifmm.lehouse.commodity.service.api;

import com.github.pagehelper.PageInfo;
import vip.ifmm.lehouse.common.dto.ServerResponse;
import vip.ifmm.lehouse.common.model.CommodityType;

import java.util.List;

/**
 * 商品分类服务接口层
 *
 * @author Fish
 * <p>Email: fishinlove@163.com</p>
 * <p>created by 2019/06/22 11:47:35</p>
 */
public interface CommodityTypeService {

    /**
     * 保存一个商品分类
     *
     * @param commodityType 要保存的商品分类
     */
    ServerResponse<Void> saveCommodityType(CommodityType commodityType);

    /**
     * 更新一个商品分类
     *
     * @param commodityType 要被更新的商品分类
     */
    ServerResponse<Void> updateCommodityType(CommodityType commodityType);

    /**
     * 删除一个商品分类
     * 注意：如果这个商品分类被删除，那么这个分类下的商品都会被置为下架
     *
     * @param commodityType 要被删除的商品分类
     */
    ServerResponse<Void> deleteCommodityType(CommodityType commodityType);

    /**
     * 获取商品分类列表
     *
     * @param pageNum 第几页
     * @param pageSize 一页显示多少条数据
     * @param needPaged 是否需要分页，当设置为 false 时，上面的参数无效
     */
    ServerResponse<PageInfo<?>> listCommodityTypes(int pageNum, int pageSize, boolean needPaged);

    /**
     * 根据具体的商品分类 id 查找
     *
     * @param commodityTypeId 指定的商品分类 id
     */
    ServerResponse<CommodityType> getCommodityType(int commodityTypeId);
}
